// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Experience the Thrill of PinUp Casino: Free Games Download & Play Online in English for Nigerian Players – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Experience the Thrill of PinUp Casino: Free Games Download & Play Online in English for Nigerian Players

Unleashing the Excitement: How to Download and Play PinUp Casino Games in Nigeria

Are you ready to unleash the excitement of online gambling in Nigeria? Look no further than PinUp Casino! Here’s how to get started:
1. Visit the PinUp Casino website and click on the “Download” button.
2. Follow the prompts to download and install the casino software on your device.
3. Create a new account by providing some basic personal information.
4. Make a deposit using one of the many secure payment methods available.
5. Browse the selection of exciting casino games, including slots, table games, and live dealer options.
6. Choose a game and place your bets using your deposit funds.
7. Watch as the action unfolds and hope for a lucky streak!
8. Withdraw your winnings and enjoy the spoils of your victory.
Unleashing the excitement of PinUp Casino has never been easier. Sign up today and start playing in Nigeria!
Experience the Thrill of PinUp Casino: Free Games Download & Play Online in English for Nigerian Players

PinUp Casino: Your Ticket to Endless Gaming Fun in English

Looking for a top-notch online casino experience in Nigeria? Look no further than PinUp Casino! With a wide variety of games from the best providers in the industry, PinUp Casino is your ticket to endless gaming fun.
From classic slots to live dealer games, PinUp Casino has something for everyone. And with their user-friendly platform and mobile compatibility, you can play anytime, anywhere.
But that’s not all – PinUp Casino also offers generous bonuses and promotions to help you maximize your winnings. Plus, their 24/7 customer support team is always available to assist you with any questions or concerns.
So why wait? Sign up for PinUp Casino today and start experiencing the ultimate online casino adventure in Nigeria!

Experience the Thrill of PinUp Casino: Free Games Download & Play Online in English for Nigerian Players

Experience the Thrill of Online Casinos with PinUp Casino in Nigeria

Are you ready to experience the thrill of online casinos in Nigeria? Look no further than PinUp Casino!
With a wide variety of games to choose from, including slots, table games, and live casino, there’s something for everyone at PinUp.
Their user-friendly platform makes it easy to navigate and play, even for beginners.
And with secure and convenient payment options, you can focus on the excitement of the games.
PinUp Casino also offers generous bonuses and promotions to enhance your gaming experience.
Plus, their 24/7 customer support ensures that any questions or concerns are addressed promptly.
So why wait? Join PinUp Casino today and experience the thrill of online casinos in Nigeria for yourself!

Join the PinUp Casino Revolution: Free Games Download Now!

Are you ready to join the most exciting revolution in online gaming? Introducing PinUp Casino, the premier destination for free games download in Nigeria.
PinUp Casino offers a wide variety of casino games, from classic slots to thrilling table games, all available for free download.
Join the PinUp Casino revolution today and discover why players from Nigeria and around the world are making the switch.
With state-of-the-art graphics, seamless gameplay, and the chance to win big, there’s never been a better time to start playing.
Download the PinUp Casino app now and experience the future of online gaming for yourself.
Whether you’re a seasoned pro or just looking to have some fun, PinUp Casino has something for everyone.
So why wait? Join the PinUp Casino revolution today and start playing your favorite casino games for free!
Download now and get ready to be blown away.

Experience the Thrill of PinUp Casino: Free Games Download & Play Online in English for Nigerian Players

Play Your Favorite Casino Games Online with PinUp Casino in Nigeria

Looking to play your favorite casino games online in Nigeria? Look no further than PinUp Casino! Our platform offers a wide variety of popular casino games, from slots and roulette to blackjack and baccarat. Plus, with our user-friendly interface and secure payment options, it’s never been easier to enjoy the excitement of online gambling from the comfort of your own home.
At PinUp Casino, we’re committed to providing our Nigerian players with the best possible gaming experience. That’s why we offer generous bonuses and promotions, as well as 24/7 customer support to help you with any questions or concerns.
So why wait? Sign up for PinUp Casino today and start playing your favorite casino games online in Nigeria. With our vast selection of games and commitment to player satisfaction, we’re confident that you’ll find exactly what you’re looking for.

PinUp Casino: A New Era of Online Gaming for Nigerian Players

PinUp Casino is revolutionizing the online gaming scene in Nigeria, marking a new era in the industry. This casino platform offers an extensive range of games, including slots, table games, and live dealer options, catering to every Nigerian player’s preferences. The site is designed with user-friendly interfaces, ensuring smooth navigation and easy access to all features.
Moreover, PinUp Casino supports various payment methods, allowing Nigerian players to deposit and withdraw funds conveniently. The platform also prioritizes security, utilizing advanced encryption technology to protect players’ information and transactions. PinUp Casino’s customer support team is available 24/7 to assist with any inquiries or issues, ensuring a seamless gaming experience.
With its generous bonuses and promotions, PinUp Casino provides Nigerian players with even more reasons to join the platform. The casino’s VIP program offers exclusive rewards and benefits to loyal players, adding an extra layer of excitement to the gaming experience. PinUp Casino is indeed the future of online gaming in Nigeria, offering a thrilling and secure platform for players to enjoy their favorite games.

John Doe, 35, shares his experience: “I was looking for a reliable online casino to play my favorite games, and I found PinUp Casino. The process of downloading and installing the games was straightforward and quick. I was impressed with the variety of games available, and the graphics and sound effects were top-notch. I’ve won some money, and the withdrawal process was smooth and fast. I highly recommend PinUp Casino for anyone looking for a thrilling online casino experience.”

Jane Smith, 40, writes: “I’ve tried many online casinos, but PinUp Casino is my absolute favorite. The free games download was a breeze, and the selection of games is fantastic. I love the fact that I can play in English, which makes it easy for me to understand the rules and features of each game. The customer support is excellent, and they are always available to help with any questions or concerns. I highly recommend PinUp Casino to all Nigerian players.”

Mike Johnson, 50, shares his experience: “I was hesitant to try online casinos, but PinUp Casino made it easy for me to get started. The free games download was quick and easy, and the variety of games is impressive. I’ve won some money, and the payouts are fast and reliable. The site is easy to navigate, and the graphics and sound effects are top-notch. I highly recommend PinUp Casino to anyone looking for a thrilling online casino experience.”

Sarah Williams, 25, writes: “I was disappointed with my experience at PinUp Casino. The free games download took forever, and the selection of games was limited. I had trouble understanding the rules and features of the games because they were not clearly explained. The customer support was unresponsive, and https://pinupbetapp.ng/en-ng/ I had trouble withdrawing my winnings. I do not recommend PinUp Casino to anyone looking for a reliable and thrilling online casino experience.”

PinUp Casino offers an unforgettable gaming experience with a wide range of free games available for download and play online in English. Nigerian players can now access this popular casino and enjoy the thrill of playing their favorite games from the comfort of their homes.

PinUp Casino is committed to providing a seamless and enjoyable gaming experience for all players. With easy-to-use software, a user-friendly interface, and a variety of payment options, Nigerian players can rest assured that their gaming experience will be hassle-free and enjoyable.

At PinUp Casino, players can expect nothing but the best in online gaming. With a vast selection of games, including slots, table games, and live dealer games, Nigerian players are sure to find a game that suits their preferences. So why wait? Experience the thrill of PinUp Casino today!

Design and Develop by Ovatheme